<?php
/**
 * Регистрация модулей и путей.
 */
class Workset_Application_Resource_Modules extends Zend_Application_Resource_ResourceAbstract
{
    /**
     * Этот метод в отличии от Zend_Application_Resource_Modules::init() не поключает
     * bootstrap-ы каждого зарегистрированного модуля.
     *
     * Добавляет в autoload пути к классам всех модулей.
     *
     * @return void
     */
	public function init()
    {
    	$bootstrap = $this->getBootstrap();
        $bootstrap->bootstrap('FrontController');
        $front = $bootstrap->getResource('FrontController');

        $options = $bootstrap->getOption('resources');
        $options = $options['modules'];

		$modules = array();

    	foreach ($front->getControllerDirectory() as $module => $moduleDirectory) {

            if ($module == $front->getDefaultModule() || !isset($options[$module])) {
                continue;
            }

 			//регистрируем модуль
			Workset_Module::addModule($module);

			$modules[] = $module;
    	}

		foreach ($modules as $module) {

			$moduleOptions = isset($options[$module]['options']) ? (array)$options[$module]['options'] : array();

			//загрузка модуля
            if (!empty($options[$module]['init'])) {

                Workset_Module::loadModule($module, $moduleOptions);

            } else {

                Workset_Module::addModuleOptions($module, $moduleOptions);
            }
		}
    }
}